package cn.echase.ecare.yinfayun.controller.access;

import cn.echase.common.core.exception.EchaseException;
import cn.echase.common.result.aop.EchaseResponseResult;
import cn.echase.ecare.yinfayun.domain.dto.AssessTemplateDto;
import cn.echase.ecare.yinfayun.domain.vo.AssessResultVo;
import cn.echase.ecare.yinfayun.service.IAssessTemplateService;
import io.micrometer.common.util.StringUtils;
import jakarta.annotation.Resource;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.dromara.common.satoken.utils.LoginHelper;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

import java.util.List;

/**
 * 评估模板管理
 */
@Slf4j
@RestController
@EchaseResponseResult
@RequiredArgsConstructor
@RequestMapping("/template")
public class AssessTemplateController {

    @Resource
    private IAssessTemplateService IAssessTemplateService;

    /**
     * 查询评估模板列表（新）
     */
    @PostMapping("/list")
    public List<AssessTemplateDto> getAssessTemplateList(@RequestBody AssessTemplateDto assessTemplateDto){
        assessTemplateDto.setOrgId(LoginHelper.getOrgId());
        log.info("[getAssessTemplateList],orgId={},tenantId={},deptId={}", LoginHelper.getOrgId(), LoginHelper.getTenantId(), LoginHelper.getDeptId());
        return IAssessTemplateService.getAssessTemplateList(assessTemplateDto);
    }

    /**
     * 查询评估模板详情（新）
     */
    @PostMapping("/info")
    public AssessTemplateDto getAssessTemplateInfo(@RequestBody AssessTemplateDto assessTemplateDto) throws Exception {
        assessTemplateDto.setOrgId(LoginHelper.getOrgId());
        return IAssessTemplateService.getAssessTemplateInfo(assessTemplateDto);
    }

    /**
     * 查询评估模板对应的评估结果字典列表（新）
     */
    @PostMapping("/resultList")
    public List<AssessResultVo> getTemplateAssessResults(@RequestBody AssessTemplateDto assessTemplateDto) throws Exception {
        if (StringUtils.isEmpty(assessTemplateDto.getUcId())) {
            throw new EchaseException(400, "模板ID不能为空");
        }

        assessTemplateDto.setOrgId(LoginHelper.getOrgId());
        return IAssessTemplateService.getAssessTemplateResultList(assessTemplateDto);
    }

}
